Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
authorMatthias Clasen <mclasen@redhat.com>
Sun, 21 Nov 2004 04:55:37 +0000 (04:55 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sun, 21 Nov 2004 04:55:37 +0000 (04:55 +0000)
2004-11-20  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkdialog.h:
* gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array):
Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
for language bindings.  (#158798, John Finlay)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkdialog.c
gtk/gtkdialog.h

index e6ac7b2755040085e31670f3b7d2b5bf65ae661e..05ebaed721e0fc262b99e449e8514b235cbfdea5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkdialog.h: 
+       * gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array): 
+       Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
+       for language bindings.  (#158798, John Finlay)
+       
 2004-11-20  Federico Mena Quintero  <federico@ximian.com>
 
        Merged from gtk-2-4:
index e6ac7b2755040085e31670f3b7d2b5bf65ae661e..05ebaed721e0fc262b99e449e8514b235cbfdea5 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkdialog.h: 
+       * gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array): 
+       Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
+       for language bindings.  (#158798, John Finlay)
+       
 2004-11-20  Federico Mena Quintero  <federico@ximian.com>
 
        Merged from gtk-2-4:
index e6ac7b2755040085e31670f3b7d2b5bf65ae661e..05ebaed721e0fc262b99e449e8514b235cbfdea5 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkdialog.h: 
+       * gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array): 
+       Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
+       for language bindings.  (#158798, John Finlay)
+       
 2004-11-20  Federico Mena Quintero  <federico@ximian.com>
 
        Merged from gtk-2-4:
index e6ac7b2755040085e31670f3b7d2b5bf65ae661e..05ebaed721e0fc262b99e449e8514b235cbfdea5 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkdialog.h: 
+       * gtk/gtkdialog.c (gtk_dialog_set_alternative_button_order_from_array): 
+       Provide a non-varargs variant of gtk_dialog_set_alternative_button_order()
+       for language bindings.  (#158798, John Finlay)
+       
 2004-11-20  Federico Mena Quintero  <federico@ximian.com>
 
        Merged from gtk-2-4:
index efc00a1e908414b5aca4b7da3257ebb5a06d355f..13c1530d654d95bd7de3eb251adaf2d485f0fa7b 100644 (file)
@@ -1185,4 +1185,43 @@ gtk_dialog_set_alternative_button_order (GtkDialog *dialog,
                                                  args);
   va_end (args);
 }
+/**
+ * gtk_dialog_set_alternative_button_order_from_array:
+ * @dialog: a #GtkDialog
+ * @n_params: the number of response ids in @new_order
+ * @new_order: an array of response ids of @dialog's buttons
+ *
+ * Sets an alternative button order. If the gtk-alternative-button-order 
+ * setting is set to %TRUE, the dialog buttons are reordered according to 
+ * the order of the response ids in @new_order.
+ *
+ * See gtk_dialog_set_alternative_button_order() for more information.
+ *
+ * This function is for use by language bindings.
+ * 
+ * Since: 2.6
+ */
+void 
+gtk_dialog_set_alternative_button_order_from_array (GtkDialog *dialog,
+                                                    gint       n_params,
+                                                    gint      *new_order)
+{
+  GdkScreen *screen;
+  GtkWidget *child;
+  gint position;
+
+  g_return_if_fail (GTK_IS_DIALOG (dialog));
+  g_return_if_fail (new_order != NULL);
+
+  screen = gtk_widget_get_screen (GTK_WIDGET (dialog));
+  if (!gtk_alternative_dialog_button_order (screen))
+      return;
+
+  for (position = 0; position < n_params; position++)
+  {
+      /* reorder child with response_id to position */
+      child = dialog_find_button (dialog, new_order[position]);
+      gtk_box_reorder_child (GTK_BOX (dialog->action_area), child, position);
+    }
+}
 
index ddb7bad330da7394d4ebbc926a0c3f6f5b05dab9..f42371ebc2fc2120fbb2a87f898594c884e4640a 100644 (file)
@@ -156,6 +156,9 @@ gboolean gtk_alternative_dialog_button_order (GdkScreen *screen);
 void     gtk_dialog_set_alternative_button_order (GtkDialog *dialog,
                                                  gint       first_response_id,
                                                  ...);
+void     gtk_dialog_set_alternative_button_order_from_array (GtkDialog *dialog,
+                                                             gint       n_params,
+                                                             gint      *new_order);
 
 /* Emit response signal */
 void gtk_dialog_response           (GtkDialog *dialog,